home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Satanic Rites 4
/
Satanic Rites - Issue 4 (1993-05-29)(Destiny).adf
/
Coder.1200
/
Coder.1200
Wrap
Text File
|
1990-01-05
|
11KB
|
302 lines
}0a0000of780m5370nfff1nfee2nfdd3nfcc4nfbb5nfaa6nf997nf880m5370lf780kfff
~iff.cbm
{2{m INFORMATION FOR CODERS{1
}0nf771nf662nf553nf444nf335nf226nf117nf00
{lSatanic Rites {jbrings you a `mini Hardware reference manual' for the Amiga
1200.
Please note that Commodore have said that they will NOT release a Hardware
Reference Manual for their new machine, so your {lonly {jsource of information is
here in {kSatanic Rites{j.
A quick credit to {lMagic 12 {jhere because `{mTop Secret{j' printed this article
first. It's merely here in Satanic Rites to aid coders who missed it there,
Ok?
{f***************************************************************************{a
{eUSING THE SUPERHIRES MODE{a
To use the SuperHires mode (1280 pixels wide), just use the bit 6 of
register $0100
bit 6 {e|{a Mode SuperHires
{e-----------------------{a
0 {e| Non selectionne{e
{e-----------------------{a
{a1 {e| {aSelectionne{e
{e-----------------------{a
{f***************************************************************************{a
{eUSING 8 BITPLANES{a
The number of bitplanes available used to be no more than 7 and was coded
using the bits 14 to 12 of register $0100. To use 8 bitplanes, just use
bit 4 of register $0100. The value of bits 14 to 12 will then not be
considered anymore.
bit 4 {e|{a 8 bitplanes mode
{e------------------------{a
0 {e| {aNot selected
{e------------------------{a
1 {e| {aSelected
{e------------------------{a
{f***************************************************************************{a
{eACCEDING 24 BITS COLOURS{a
{fThe 24 bits colour is coded using 2 words:{a
{c-{a the first receives the 4 low bits of each R, G and B componants
{c-{a the second receives the 4 high bits of each R, G and B componants
To modify a colour using 24 bits coding, you must use 2 coppers-moves on the
same colour register. The first move must ABSOLUTELY be the move of the
word of the 3*4 high bits, the second move is the move of the word of the
3*4 low bits.
The copper knowns when the move regards the 3*4 low bits or the 3*4 high
bits by checking the bit 9 of register $0106
bit 9 {e|{a Componants access
{e-----------------------------------------------------------------{a
0 {e|{a Access to the 4 low bits of componants R, G and B
{e-----------------------------------------------------------------{a
1 {e|{a Access to the 4 high bits of componants R, G and B
{e-----------------------------------------------------------------{a
ex: change $0180 to $00123456 in the copperlist
$01060000
$01800135
$01060200
$01800246
When you want to work using the 12 bits colour coding mode, the 3*4 bits
value you move to the colour register is considered by the copper as the 3*4
high bits. You don't have to care about $0106. It seems bit 9 of register
$0106 is initialized to 0 at each copjmp.
{f***************************************************************************{a
{eACCEDING THE 256 COLOUR PALETTE{a
The amiga don't work with 256 separate colour registers. A same colour
register is used several times to code several colours.
The amiga just works with 8 differents palettes of 32 colours each, using
colour registers from $0180 to $01BE.
You can choose the palette you want to access via the bits 11 to 14 of
register $0106
bit 14 {e|{a bit 13 {e|{a bit 12 {e|{a Selected palette
{e--------------------------------------------------------{a
0 {e|{a 0 {e|{a 0 {e|{a Palette 0 (colour 0 to 31)
{e--------------------------------------------------------{a
0 {e|{a 0 {e|{a 1 {e|{a Palette 1 (colour 32 to 63)
{e--------------------------------------------------------{a
0 {e|{a 1 {e|{a 0 {e|{a Palette 2 (colour 64 to 95)
{e--------------------------------------------------------{a
0 {e|{a 1 {e|{a 1 {e|{a Palette 3 (colour 96 to 125)
{e--------------------------------------------------------{a
1 {e|{a 0 {e|{a 0 {e|{a Palette 4 (colour 128 to 159)
{e--------------------------------------------------------{a
1 {e|{a 0 {e|{a 1 {e|{a Palette 5 (colour 160 to 191)
{e--------------------------------------------------------{a
1 {e|{a 1 {e|{a 0 {e|{a Palette 6 (colour 192 to 223)
{e--------------------------------------------------------{a
1 {e|{a 1 {e|{a 1 {e|{a Palette 7 (colour 224 to 255)
{e--------------------------------------------------------{a
ex: You want to change colour 177 to $00123456
Colour 177 is colour $01A2 of palette 5
$01065000
$01800246
$01065200
$01800135
{f***************************************************************************{a
{eSWITCHING THE PALETTE{a
You can switch colours. The definition of switching colour A and colour B is:
- colour registers of colours A and B are NOT modified by the switching
- colour A is displayed using the content of register of colour B and
vice-versa
The switching of palette can't be used on just n colours of the palette.
Once you choose a switching value, ALL the palette's colours will be
switched. The switching value is the value separing the colours to be
switched and is coded with bits 15 to 8 of register $010C.
ex: You want all the colours separated by one colour in the colourlist to be
switched
$0180 <--
$0182 <--|--
$0184 <-- |
$0186 <-----
$0188 <--------
. |
.
.
Value 2 will be stocked in bits 15 to 8.
The switching works with the palette as if it was a circular palette. I
mean if if the copper consider colour 255 and must switch by 1 the colours,
colour $0180 will be assiocated to colour 255.
{f***************************************************************************{a
{eUSING SPRITES IN LOWRES, HIRES AND SUPERHIRES{a
To change the reolution of the sprite, just use bit 7 and 6 of register
$0106
bit 7 {e|{a bit 6 {e|{a Resolution
{e--------------------------{a
0 {e|{a 0 {e|{a Lowres
{e--------------------------{a
1 {e|{a 0 {e|{a Hires
{e--------------------------{a
0 {e|{a 1 {e|{a Lowres
{e--------------------------{a
1 {e|{a 1 {e|{a SuperHires
{e--------------------------{a
{f***************************************************************************{a
{eUSING 16, 32 AND 64 PIXELS WIDE SPRITES{a
Well, I still have bug there with sprites in 32 or 64 pixels. Sorry but
the followings informations may have to be corrected.
Use bit 3 and 2 of register $01FC
bit 3 {e|{a bit 2 {e|{a Wide
{e-------------------------{a
0 {e|{a 0 {e|{a 16 pixels
{e-------------------------{a
1 {e|{a 0 {e|{a 32 pixels
{e-------------------------{a
0 {e|{a 1 {e|{a 32 pixels
{e-------------------------{a
1 {e|{a 1 {e|{a 64 pixels
{e-------------------------{a
The copper doesn't read the spritelist in the same way regarding the wide
you choose for your sprite
16 pixels wide reading:
word C1, word C2
word A1, word B1
.
.
.
word An, word Bn
$0000 0000
C1=first control word
C2=second control word
Ai and Bi are combined via OR to form the sprite
32 pixels wide reading:
long C1, long C2
long A1, long B1
.
.
.
long An, long Bn
$0000 0000 0000 00000
C1=first control long
the first control word is the high word of C1. The low word of C1 must
contain the second control word.
C2=second control long
the second control word is the high word of C2. Low word of C2 is $0000
Ai and Bi are combined via OR to form the sprite
64 pixels wide reading:
double C1, double C2
double A1, double B1
.
.
.
double An, double Bn
$0000 0000 0000 00000 0000 0000 0000 00000
C1=first control double
C1=W3:W2:W1:W0 (Wi=words)
W3 is first control word
W2 and W1 are second control word
C2=second control double
C2=W3:W2:W1:W0 (Wi=words)
W3 is second control word
Ai and Bi are combined via OR to form the sprite
{f***************************************************************************{a
{eCHANGING THE SPRITE PALETTE{a
It is possible to choose the colour palette of the sprite. This is done by
the bits 7 and 4 of register $010C.
bit 7 {e|{a bit 6 {e|{a bit 5 {e|{a bit 4 {e|{a Starting colour of the sprite's palette
{e-------------------------------------------------------------------------{a
0 {e|{a 0 {e|{a 0 {e|{a 0 {e|{a $0180/palette 0 (coulor 0)
{e-------------------------------------------------------------------------{a
0 {e|{a 0 {e|{a 0 {e|{a 1 {e|{a $01A0/palette 0 (colour 15)
{e-------------------------------------------------------------------------{a
0 {e|{a 0 {e|{a 1 {e|{a 0 {e|{a $0180/palette 1 (colour 31)
{e-------------------------------------------------------------------------{a
0 {e|{a 0 {e|{a 1 {e|{a 1 {e|{a $01A0/palette 1 (colour 47)
{e-------------------------------------------------------------------------{a
0 {e|{a 1 {e|{a 0 {e|{a 0 {e|{a $0180/palette 2 (colour 63)
{e-------------------------------------------------------------------------{a
0 {e|{a 1 {e|{a 0 {e|{a 1 {e|{a $01A0/palette 2 (colour 79)
{e-------------------------------------------------------------------------{a
0 {e|{a 1 {e|{a 1 {e|{a 0 {e|{a $0180/palette 3 (colour 95)
{e-------------------------------------------------------------------------{a
0 {e|{a 1 {e|{a 1 {e|{a 1 {e|{a $01A0/palette 3 (colour 111)
{e-------------------------------------------------------------------------{a
1 {e|{a 0 {e|{a 0 {e|{a 0 {e|{a $0180/palette 4 (colour 127)
{e-------------------------------------------------------------------------{a
1 {e|{a 0 {e|{a 0 {e|{a 1 {e|{a $01A0/palette 4 (colour 143)
{e-------------------------------------------------------------------------{a
1 {e|{a 0 {e|{a 1 {e|{a 0 {e|{a $0180/palette 5 (colour 159)
{e-------------------------------------------------------------------------{a
1 {e|{a 0 {e|{a 1 {e|{a 1 {e|{a $01A0/palette 5 (colour 175)
{e-------------------------------------------------------------------------{a
1 {e|{a 1 {e|{a 0 {e|{a 0 {e|{a $0180/palette 6 (colour 191)
{e-------------------------------------------------------------------------{a
1 {e|{a 1 {e|{a 0 {e|{a 1 {e|{a $01A0/palette 6 (colour 207)
{e-------------------------------------------------------------------------{a
1 {e|{a 1 {e|{a 1 {e|{a 0 {e|{a $0180/palette 7 (colour 223)
{e-------------------------------------------------------------------------{a
1 {e|{a 1 {e|{a 1 {e|{a 1 {e|{a $01A0/palette 7 (colour 239)
{e-------------------------------------------------------------------------{a
{f***************************************************************************{a